#>author: fuml
#>date:2019-9-7
#>desc:迭代器

#> 迭代器协议： 必须满足两个条件    --------》      1 有iter方法  2 有next 方法
from collections.abc import Iterable,Iterator

from builtins import isinstance

# list tuple dict string
list1=[1,2,3,5]
d=iter(list1)  

print(isinstance(list1,Iterator))
print(isinstance(list1,Iterable))

print(isinstance(d,Iterator))
print(isinstance(d,Iterable))

#> for 循环内部三件事
#> 调用可迭代对象的iter方法返回一个迭代器对象
#> 调用迭代器对象的next方法
#> 处理stopIteration 异常


# 文本 流迭代器 
## 读取一个文本文件，找出这个文件中最长的一行